package com.eshore.norm.pojo.po.cmdb;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
    * 硬盘表
    */
@ApiModel(value = "CmdbVolume")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName(value = "cmdb_volume")
public class CmdbVolume extends BaseDO<CmdbVolume> {

    /**
     * 资源账户id
     */
    @TableField(value = "account_id")
    @ApiModelProperty(value = "资源账户id")
    private Long accountId;

    /**
     * 硬盘id
     */
    @TableField(value = "volume_id")
    @ApiModelProperty(value = "硬盘id")
    private String volumeId;

    /**
     * 云服务id
     */
    @TableField(value = "resource_id")
    @ApiModelProperty(value = "云服务id")
    private Long resourceId;

    /**
     * 虚拟化类型：1-欧拉，2-华3
     */
//    @TableField(value = "virtualization_type")
//    @ApiModelProperty(value = "虚拟化类型：1-欧拉，2-华3")
//    private CmdbResTypeEnums virtualizationType;

    /**
    * 云类别
    */
//    @TableField(value = "cloud_type")
//    @ApiModelProperty(value = "云类别：1-公有云，2-私有云")
//    private CloudTypeEnum cloudType;

    /**
     * 状态
     */
    @TableField(value = "status")
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 迁移状态
     */
    @TableField(value = "migration_status")
    @ApiModelProperty(value = "迁移状态")
    private String migrationStatus;

    /**
     * 硬盘链接
     */
    @TableField(value = "links")
    @ApiModelProperty(value = "硬盘链接")
    private String links;

    /**
     * 是否可启动
     */
    @TableField(value = "bootable")
    @ApiModelProperty(value = "是否可启动")
    private Byte bootable;

    /**
     * 是否加密
     */
    @TableField(value = "encrypted")
    @ApiModelProperty(value = "是否加密")
    private Byte encrypted;

    /**
     * 硬盘类型名
     */
    @TableField(value = "volume_type")
    @ApiModelProperty(value = "硬盘类型名")
    private String volumeType;

    /**
     * 响应状态
     */
    @TableField(value = "replication_status")
    @ApiModelProperty(value = "响应状态")
    private String replicationStatus;

    /**
     * 一致组id
     */
    @TableField(value = "consistencygroup_id")
    @ApiModelProperty(value = "一致组id")
    private String consistencygroupId;

    /**
     * 源硬盘id
     */
    @TableField(value = "source_volid")
    @ApiModelProperty(value = "源硬盘id")
    private String sourceVolid;

    /**
     * 是否多挂载
     */
    @TableField(value = "multiattach")
    @ApiModelProperty(value = "是否多挂载")
    private Boolean multiattach;

    /**
     * 硬盘名称
     */
    @TableField(value = "name")
    @ApiModelProperty(value = "硬盘名称")
    private String name;

    /**
     * 描述信息
     */
    @TableField(value = "description")
    @ApiModelProperty(value = "描述信息")
    private String description;

    /**
     * 硬盘大小
     */
    @TableField(value = "size")
    @ApiModelProperty(value = "硬盘大小")
    private Integer size;

    /**
     * 硬盘数量
     */
    @TableField(value = "volumeNum")
    @ApiModelProperty(value = "硬盘数量")
    private Integer volumeNum;

    /**
     * 用户ID
     */
    @TableField(value = "user_id")
    @ApiModelProperty(value = "用户ID")
    private String userId;

    /**
     * 可用域信息
     */
    @TableField(value = "availability_zone")
    @ApiModelProperty(value = "可用域信息")
    private String availabilityZone;

    /**
     * 快照ID
     */
    @TableField(value = "snapshot_id")
    @ApiModelProperty(value = "快照ID")
    private String snapshotId;

    /**
     * 计算节点信息
     */
    @TableField(value = "host")
    @ApiModelProperty(value = "计算节点信息")
    private String host;

    /**
     * 项目ID
     */
    @TableField(value = "project_Id")
    @ApiModelProperty(value = "项目ID")
    private String projectId;

    /**
     * 可用域
     */
    @TableField(value = "metadata")
    @ApiModelProperty(value = "可用域")
    private String metadata;

    /**
     * 租户编码
     */
    @TableField(value = "tenant_code")
    @ApiModelProperty(value = "租户编码")
    private Long tenantCode;
    
    /**
     * szc订单号
     */
    @TableField(value = "szc_order_no")
    @ApiModelProperty(value = "szc订单号")
    private String szcOrderNo;
    
    /**
     * manageone订单号
     */
    @TableField(value = "manageone_order_no")
    @ApiModelProperty(value = "manageone订单号")
    private String manageoneOrderNo;

}